Coldest
November 23, 2024, 07:08:15 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: I've changed anti-bot strategies, so hopefully the rash of bot registrations will stop. Smiley
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Some questions  (Read 15928 times)
0 Members and 1 Guest are viewing this topic.
Tapio
Newbie
*
Posts: 8


View Profile
« on: January 23, 2011, 03:02:36 PM »

Hi,
I just tried Coldest today (compiled from svn on linux) and was rather positively surprised about it. I especially liked how most of the graphics didn't actually make my eyes bleed (apart from the hit effect stuff which is rather horrible) and how you've resisted xml/json whatever in favor of simple plain text config files (e.g. maps seem to be easy and nice to create apart from the procedural trees for which I would suggest a similar placement method as grass has).

Now I'd like to ask some questions.

1. Is there an IRC channel for this project?
I feel it's easier to discuss stuff and ask quick questions in real time. Also, if the project should have more than one developer, a CIA.vc IRC bot announcing all commits is pretty much de-facto standard for open-source projects.

2. Is the engine completely home-brew or is it based on something?
My quick initial analysis suggests it's original. It seems nicely not-ancient (using VBOs, FBOs, shaders etc. contrary to most open-source games sticking to OpenGL 1.4 and fixed function pipeline).

3. Are the bots completely brain dead and invulnerable?
As it seemed when I tested.

4. If I would construct a CMake-based build system, what are its chances of getting included or even replacing the current one?
I've grown rather fond of this popular cross-platform build tool that generates (among other things) colorful makefiles and most importantly keeps the source tree clean of the object code pollution and other compilation garbage. I actually almost completed this for my own use already, but encountered a small obstacle at the end when I realized I cannot simply glob sources with wildcards (*.cpp) as the server and client files are in the same directory.

Oh, I could tell you that I consider myself quite good C++ programmer with experience on OpenGL usage also. If I can find the time, I could consider some contributing.
Logged
Cybertron
Coldest Developer
Administrator
Full Member
*****
Posts: 77



View Profile
« Reply #1 on: January 27, 2011, 11:02:18 PM »

Hi,
I just tried Coldest today (compiled from svn on linux) and was rather positively surprised about it. I especially liked how most of the graphics didn't actually make my eyes bleed (apart from the hit effect stuff which is rather horrible) and how you've resisted xml/json whatever in favor of simple plain text config files (e.g. maps seem to be easy and nice to create apart from the procedural trees for which I would suggest a similar placement method as grass has).
It's not bad for programmer art. Smiley  There are a few placeholder bits still and I'm planning to replace the explosion stuff because it's messed up right now, and even if I fix it I think there will be potential problems that can't be easily fixed.  I'm probably going to make it more particle based which should look and work better.

I'm not a huge fan of xml for a lot of the stuff people use it for either.  It's kind of ugly to read and write for simple things like config files and I count my custom file format as one of the best decisions I've made in this project.  It's flexible and simple and since I came up with it everything makes sense to me. Wink  The GUI stuff does use XML, but that was done more as a learning experience.

The trees can actually be edited in-engine because I agree that editing by hand would be torture, but the editor component is still pretty immature.  I can't place trees randomly like the grass because a lot of the trees generated are pretty ugly so they need a little human intervention to choose random seeds that look good.

Quote
Now I'd like to ask some questions.

1. Is there an IRC channel for this project?
I feel it's easier to discuss stuff and ask quick questions in real time. Also, if the project should have more than one developer, a CIA.vc IRC bot announcing all commits is pretty much de-facto standard for open-source projects.
I had one for a while, but at the time I had trouble generating interest so it never got used and I'm pretty sure it's gone.  Perfectly happy to have another one though.

Quote
2. Is the engine completely home-brew or is it based on something?
My quick initial analysis suggests it's original. It seems nicely not-ancient (using VBOs, FBOs, shaders etc. contrary to most open-source games sticking to OpenGL 1.4 and fixed function pipeline).
Completely from scratch.  Honestly, most of the new stuff that I used is just simpler than doing things the old way, so it made sense.  Sure, it will keep it from running on some old hardware, but frankly I don't think it will perform well enough on that stuff anyway, so it's not worth worrying about.

Quote
3. Are the bots completely brain dead and invulnerable?
As it seemed when I tested.
Pretty much, although you should be able to kill them.  It's entirely possible there's a bug with that though.  The bots were mostly for the sake of load testing the engine so at this point they're pretty much useless for anything but target practice.

Quote
4. If I would construct a CMake-based build system, what are its chances of getting included or even replacing the current one?
I've grown rather fond of this popular cross-platform build tool that generates (among other things) colorful makefiles and most importantly keeps the source tree clean of the object code pollution and other compilation garbage. I actually almost completed this for my own use already, but encountered a small obstacle at the end when I realized I cannot simply glob sources with wildcards (*.cpp) as the server and client files are in the same directory.
I've actually considered switching to CMake because I've used it in another project and I liked it, but right now the same makefile is used for the client, server, and master server because they all share code.  I don't know CMake well enough to know how to do that cleanly, but if you can figure it out I'd be happy to switch.  It's been on my todo list for a while anyway.

Quote
Oh, I could tell you that I consider myself quite good C++ programmer with experience on OpenGL usage also. If I can find the time, I could consider some contributing.
Certainly happy to have any help.  I should warn you that some of this code dates back to my college days and is pretty awful.  I'm trying to clean it up as I go, but one of the big problems with it is that a lot of code is tightly coupled so fixing one piece requires a rewrite of 3 other major parts.  Roll Eyes
Logged
Tapio
Newbie
*
Posts: 8


View Profile
« Reply #2 on: January 30, 2011, 07:19:01 AM »

Quote
I've actually considered switching to CMake because I've used it in another project and I liked it, but right now the same makefile is used for the client, server, and master server because they all share code.  I don't know CMake well enough to know how to do that cleanly, but if you can figure it out I'd be happy to switch.  It's been on my todo list for a while anyway.

I have now a working CMake build. It has switches for building each of the client, dedicated and master server (can be built in any combination e.g. all at once). There is not yet an install target because in order to be unix friendly, I think the resource thingy would need to be patched to understand the unix hierarchy ($PREFIX/bin for binaries, $PREFIX/share/games/coldest for data).

Once the SVN server is up and running again, I'll create a Git mirror for myself (because git is just so much faster, better and prettier than svn) and put the thing online for review. If you like it, you can then give me commit access and I can push the stuff to the official repo (I use git-svn two directional bridge for that - you wouldn't even know I actually use git Smiley ). Of course you can just apply patches if you wan't to keep the repo access to yourself, but in my experience giving access away easily is the most hassle-free way for everyone and encourages further contributions.
Logged
Tapio
Newbie
*
Posts: 8


View Profile
« Reply #3 on: January 31, 2011, 03:45:24 PM »

Okay, after many tries I managed to download the SVN repo and as promised the initial version of the CMake build system can be found from my hacking repo @ github: https://github.com/tapio/coldest
More specifically, the diffs of the commit-in-question are here: https://github.com/tapio/coldest/commit/f2c51530c33a62e18b68b99d4bec7c8fe1b4b2a8

Comments and testing experiences are welcomed.
Logged
Cybertron
Coldest Developer
Administrator
Full Member
*****
Posts: 77



View Profile
« Reply #4 on: January 31, 2011, 08:57:52 PM »

Cool, I'll check it out.  Have to look at moving to git too.  I've heard good things about it but since it was just me svn was fine.  It sounds like I might be able to move the repo hosting to SourceForge with git (I didn't before because it would have been really slow to upload the larger files) which would cut down on the problems.
Logged
Tapio
Newbie
*
Posts: 8


View Profile
« Reply #5 on: February 01, 2011, 03:47:54 AM »

Have to look at moving to git too.  I've heard good things about it but since it was just me svn was fine.  It sounds like I might be able to move the repo hosting to SourceForge with git (I didn't before because it would have been really slow to upload the larger files) which would cut down on the problems.
Actually for lone developer distributed system is better from the start: since he doesn't need to synchronize stuff with others (apart from uploading stuff every once in a while), the absence of network latency with Git and friends is a huge time saver.

Anyway, I wouldn't recommend sourceforge. It has slow ssh (not to mention the really slow "hosted apps" like trac), ugly web interface and is a bit of a dinosaur in many aspects. I personally like Github.com: it has prettier interface and the whole social aspect together with the possibility to easily use "fork -> hack -> make a pull request" workflow together with branch network graphs.

One slight problem with github is that is has a quota of 300 megabytes (which is about the size of the entire coldest svn repo history converted to git). However, that quota is actually a soft limit put in place to avoid abuse: it is not enforced in any way and the staff have said in numerous support threads that it's ok to have bigger, even 1Gb, but for best operation, should stick to 500M per repo.

Another rather popular git hosting site is Gitorious.com, but I don't have much experiences with it. I do think that Github offers more features though.

EDIT: To be fair towards sourceforge, it does seem to offer more detailed repository access etc. statistics if those are really important.
« Last Edit: February 01, 2011, 03:51:22 AM by Tapio » Logged
freegamer
Newbie
*
Posts: 2


View Profile Email
« Reply #6 on: February 06, 2011, 06:59:02 AM »

On XML/JSON:
- XML is a pain although in more complex cases there can be significant benefits
- JSON is great; really simple, really easy to understand, hand edit, load to objects and save back in code.  Also using something like JSON simplifies integration of a script engine (JS maybe?) later on as, well, it works with most scripting languages too!

On IRC:
Just join #coldest on irc.freenode.net

On hosting:
- Sourceforge is OK but slow.  Trac isn't too bad, but SVN is slow.  Don't know about Git on SF.net though.
- Github, never used it, but the limits are a bit low
- Bitbucket.org for Hg (Mercurial) is good
- Google Code is pretty nice though SVN/Hg only
- There's other sites such as Assembla

Identify what you want; go with it.  Fundamentally, the better ones are all fast with good uptime.
Logged
Cybertron
Coldest Developer
Administrator
Full Member
*****
Posts: 77



View Profile
« Reply #7 on: February 08, 2011, 08:15:00 PM »

Okay, after many tries I managed to download the SVN repo and as promised the initial version of the CMake build system can be found from my hacking repo @ github: https://github.com/tapio/coldest
More specifically, the diffs of the commit-in-question are here: https://github.com/tapio/coldest/commit/f2c51530c33a62e18b68b99d4bec7c8fe1b4b2a8

Comments and testing experiences are welcomed.
I tried this out last night and while it mostly works I'm having problems with the link step.  For some reason it's not including the OpenGL libs even though CMake claims it found OpenGL properly.

Here's the end of the link command in verbose mode:
Code:
CMakeFiles/coldest.dir/gui/ProgressBar.cpp.o  -o coldest -rdynamic -lboost_filesystem-mt-1_42 -Wl,-Bstatic -lSDLmain -Wl,-Bdynamic -lSDL -lSDL_image -lSDL_net -lSDL_ttf -lGLEW -lalut -logg -lvorbis -lvorbisfile -lxerces-c -lcurl

And the output from CMake:
Code:
-- The CXX compiler identification is GNU
-- The C compiler identification is GNU
-- Check for working CXX compiler: /usr/lib64/ccache/bin/c++
-- Check for working CXX compiler: /usr/lib64/ccache/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working C compiler: /usr/lib64/ccache/bin/gcc
-- Check for working C compiler: /usr/lib64/ccache/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
WARNING: CMAKE_BUILD_TYPE is not defined!
         Defaulting to CMAKE_BUILD_TYPE=RelWithDebInfo. Use ccmake to set a proper value.
-- GCC detected, adding compile flags
-- Boost version: 1.42.0
-- Found the following Boost libraries:
--   filesystem
-- checking for module 'sdl'
--   found sdl, version 1.2.13
-- Found SDL
-- checking for module 'gl'
--   found gl, version 7.9.0
-- Found GLEW
-- Found CURL: /usr/lib64/libcurl.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/cybertron/source/coldest.cmake/build

I tried adding OpenGL to the list of required libs manually, but it didn't seem to make a difference.  Any idea what would be wrong?
Logged
Tapio
Newbie
*
Posts: 8


View Profile
« Reply #8 on: February 09, 2011, 03:45:00 AM »

Hi,
Somehow I don't get errors, but I added OpenGL to the CMake. Commit:
https://github.com/tapio/coldest/commit/f1235f7cf36d060a3a5141ba62200a5a14aac7c1 "Add OpenGL to CMake."

The reason why simply adding it to the list won't work, is because the variables are a bit of a mess. I.e. I like to just loop over the libs like I do there (keeping the CMakeLists.txt short), but the variable names in the cmake find scripts are not consistent or are deprecated, so I need to modify them and put a script to the cmake folder.

EDIT: As I don't get errors, I don't know if this works but I hope so.
Logged
Cybertron
Coldest Developer
Administrator
Full Member
*****
Posts: 77



View Profile
« Reply #9 on: February 09, 2011, 08:41:59 PM »

Ah, I see.  My copy of FindOpenGL.cmake had OPENGL in all caps and I was putting OpenGL in the lib list.  Seems to be working fine now.
Logged
Cybertron
Coldest Developer
Administrator
Full Member
*****
Posts: 77



View Profile
« Reply #10 on: March 23, 2011, 07:16:41 PM »

Hey, just wanted to let you know I did move the code to Git, currently on SourceForge.  I also put a couple of projects up on GitHub and it is very nice to use, but I want to use the SourceForge file release system for the full downloads at some point (since my web server does not seem to have the fastest connection), so at least for now I decided I would just leave it all there.  They have no quotas either, although I know you said that wasn't actually a big deal on GitHub either.

I've done some work since I moved everything into Git (which is why it's been so long) and I definitely think you were right about it being the way to go.  I do still need to get the release scripts converted to use git and cmake, but I've looked into it and I don't think it will be a problem.

Anyway, if have a SourceForge account I can give you commit access now (if you still want it Wink).  The project information is here: http://sourceforge.net/scm/?type=git&group_id=271058
Logged
Tapio
Newbie
*
Posts: 8


View Profile
« Reply #11 on: March 24, 2011, 12:55:01 AM »

Hey, just wanted to let you know I did move the code to Git, currently on SourceForge.  I also put a couple of projects up on GitHub and it is very nice to use, but I want to use the SourceForge file release system for the full downloads at some point (since my web server does not seem to have the fastest connection), so at least for now I decided I would just leave it all there.  They have no quotas either, although I know you said that wasn't actually a big deal on GitHub either.

I've done some work since I moved everything into Git (which is why it's been so long) and I definitely think you were right about it being the way to go.  I do still need to get the release scripts converted to use git and cmake, but I've looked into it and I don't think it will be a problem.

Anyway, if have a SourceForge account I can give you commit access now (if you still want it Wink).  The project information is here: http://sourceforge.net/scm/?type=git&group_id=271058
This is very nice: it now took something like 15 seconds to clone the entire repo (yes, I do have a rather speedy connection), while previously that wasn't enough time for checkingout one svn revision. Nice to also know there has been development, I was a bit scared when the svn had not received updates. Smiley My sf.net id is aave000. I guess I should find out where I put my idea todo.
Logged
Cybertron
Coldest Developer
Administrator
Full Member
*****
Posts: 77



View Profile
« Reply #12 on: March 24, 2011, 05:44:52 PM »

This is very nice: it now took something like 15 seconds to clone the entire repo (yes, I do have a rather speedy connection), while previously that wasn't enough time for checkingout one svn revision.
Yeah, it's also nice to be able to do local commits without worrying about breaking anyone else.  I think I did over 10 before pushing the changes after I started using it because the overall change was so large.

Anyway, you should have git access now.  Let me know if you need help finding anything - like I said before there's still some pretty ugly stuff to be found in the code. Smiley
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.104 seconds with 16 queries.